1. Field of the Invention
This invention relates to a method for utilizing a memory of a de-interleaving unit in an optical disc drive device.
2. Description of Related Art
To increase the reliability of read operation on a CD-ROM (Compact-Disc Read-Only-Memory) drive, data are interleaved before they are recorded on a CD-ROM disc. Therefore, the read operation in the CD-ROM drive should include a de-interleaving procedure. FIG. 1 is a schematic diagram showing a series of functional units involved in a read operation in the CD-ROM drive, which includes an EFM demodulation unit 102, a C1 decoding unit 104, a de-interleaving unit 106, and a C2 decoding unit 108. The EFM demodulation unit 102 is capable of demodulating data on the disc into a stream of 8-bit data. After the C1 decoding unit 104 receives a frame of 32 bytes (8-bit) data from the EFM demodulation unit 102, it decodes them into a frame of 28 bytes data and then transfers these decoded data to the de-interleaving unit 106 for de-interleaving. The de-interleaving unit 106 then transfers the de-interleaved data to the C2 decoding unit 108. During the de-interleaving procedure, each frame includes 28 bytes of data.
The de-interleaving unit 106 includes a memory unit for the de-interleaving process. FIG. 2 shows the memory allocation for the memory of the de-interleaving unit 106. Referring to FIG. 2 together with FIG. 1, the address range is from 0 to 3051. The 28 8-bit (byte) data in the first frame from the C1 decoding unit 104 are respectively denoted by (f0, 0), (f0, 1) . . . , (f0, 27). When the C decoding unit 104 transfers the first frame to the de-interleaving unit 106, data in the first frame are written into the memory of the de-interleaving unit 106 in such a manner according to the conventional access method as following. The first data (f0, 0) is written into Row 108 Column 0 (i.e., the address 3024); the second data (f0, 1) is written into Row 104 Column 1 (i.e., the address 2913); and so forth, the last data (f0, 27) is written into Row 0 Column 26 (i.e., the address 27).
After the first frame is written completely, the second frame is then written into the de-interleaving unit 106. In the following, the 28 8-bit data in the second frame from the C1 decoding unit 104 are respectively denoted by (f1, 0), (f1, 1) . . . , (f1, 27). When the C1 decoding unit 104 transfers the second frame to the de-interleaving unit 106, data in the second frame are written into the memory of the de-interleaving unit 106 in such a manner according to conventional access method that the first data (f1, 0) is written into Row 109 Column 0 (i.e., the address 0); the second data (f1, 1) is written into Row 105 Column 1 (i.e., the address 2914); and so forth the last data (f1, 27) is written into the Row 1 Column 26 (i.e., the address 55). The similar procedure is repeated for each of the sub-sequent frames.
When a certain row in the memory of the de-interleaving unit 106 is fully rewritten by the decoded data, the de-interleaving unit 106 will then output all the data stored in that row to the C2 decoding unit 108. For example, when Row 108 is fully rewritten, the de-interleaving unit 106 will output all the data stored in Row 108 to the C2 decoding unit 108. In other words, when address 3051 (Row 108 Column 27) is rewritten by (f108, 27), all data stored in Row 108, including (f0, 0), (f4, 1), (f8, 2), . . . , and (f108, 27) will be transferred to the C2 decoding unit 108.
FIG. 9B is a schematic diagram showing the method for determining a size of a memory of a de-interleaving unit based on the prior art. Since the data buffering and the data retrieving procedures are frame by frame progressed individually, and the data retrieving procedures always starts on till the data buffering procedure completed, thus the required size of the memory of the de-interleaving will be [(2B−1)*D]*2B, wherein the [(2B−1)*D] is the maximal delay taken for preserving the size of the memory for the buffered data to be retrieved. For example, letting B=14, D=4, N=1, and length of each symbol of a data frame is 1 byte, the size of the memory of the de-interleaving unit will be (27*4)*28=3024 bytes.
One drawback to the forgoing memory access scheme, however, is that the memory of the de-interleaving unit 106 is ineffectively utilized. In other words, some memory locations reserved are unused during the de-interleaving process since the memory always be allocated by a maximum.